/*
	数组相关的处理函数
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include "common.h"
#include "arrayUtil.h"
#include "my_errno.h"

/*
   *Function	:arrPrint
   *Descrption	:打印数组元素
   *Param in	: p 数组首地址
				  length 数组长度
   *Param out	: None
   *Return		: ERROR_OK 正常返回
				  ERR_INVALID_INPUT 参数错误
*/
int arrPrint(int *p, int length)
{
	int i;
	if(!p || length<0)
		return ERR_INVALID_INPUT;
	for(i=0; i < length; i++)
	{
		printf("%d ", *(p+i));
	}
	printf("\n");
	return ERROR_OK;
}

/*
   *Function	:arrRandomInit
   *Descrption	:init an array by random number ranging o to range
   *Param in	: p 数组首地址
				  length 数组长度
				  range 数组初始化的最大值，从0开始
   *Param out	: None
   *Return		: ERROR_OK 正常返回
				  ERR_INVALID_INPUT 参数错误
*/
int arrRandomInit(int *p, int length, int range)
{
	if(!p || length < 0)
		return ERR_INVALID_INPUT;
	int i = 0;
	srand(time(NULL));
	for(i = 0; i < lenght; i++)
	{
		*(p+i) = rand()%range;
	}
	return ERROR_OK;
}

/*
   *Function	:arrPSimpleSort
   *Descrption	:最简单的数组排序
   *Param in	: p 数组首地址
				  length 数组长度
   *Param out	: None
   *Return		: ERROR_OK 正常返回
				  ERR_INVALID_INPUT 参数错误
*/
int arrSimpleSort(int *p, int length)
{
	if(!p || length < 0)
		return ERR_INVALID_INPUT;
	int i, j;
	int temp = 0;
	for(i = 0; i < length -1; i++)
	{
		for(j = i+1; j < length; j++)
		{
			if(p[j] < p[i])
			{
				temp = p[i];
				p[i] = p[j];
				p[j] = temp;
			}
		}
	}
	return ERROR_OK;
}
